#ifndef _TYPES_H_
#define _TYPES_H_

#include <ctype.h>
#include <limits.h>
#include <stddef.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <float.h>
#include <signal.h>
#include <setjmp.h>
#include <errno.h>
#include <assert.h>
#include <math.h>

#include <list>
#include <map>
#include <string>
using std::string;
using std::wstring;

#if defined(WIN32)
#include <winsock2.h>
#include <Ws2tcpip.h>
#define ioctl ioctlsocket
#define close closesocket
typedef int socklen_t;

#elif defined(__SYMBIAN32__)
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <netdb.h>
#include <fcntl.h>

#else
#include <unistd.h>
#include <net/if.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <fcntl.h>
#include <sys/time.h>
#endif

#include "pthread.h"
#include "semaphore.h"

#define OUT
#define INOUT

typedef unsigned int    u32;
typedef unsigned short  u16;
typedef unsigned char   u8;
typedef void (*Func)(void *);

#endif //_TYPES_H_
